<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //js无法精确表示大数 - 超过2的53次方

        // let n = Math.pow(2,53);  //9007199254740992
        // let n2 = Math.pow(2,53)+1;  //9007199254740992

        // console.log(n === n2); //true


        // 2. 超过2第1024次方 ，值就变成了infinity
        // let n = Math.pow(2,1024);
        // console.log(n); //Infinity

        // let n = Math.pow(2,3);

        // let n2 = BigInt(n); //改变数据类型 将数字变成 BigInt类型

        // console.log(n2); //8n


        // let n = Math.pow(2,53); //9007199254740992n
        // let n = Math.pow(2,53)+10; // 9007199254741002n

        // console.log(BigInt(n));

        // Uncaught RangeError: The number Infinity cannot be converted to a BigInt because it is not an integer
        // let n = Math.pow(2,1023); 

        // 89884656743115795386465259539451236680898848947115…293149119973622969239858152417678164812112068608n

        // let n2 = BigInt(n);

        // console.log(n2);

        // 和普通数字有什么区别

        // 1.
        // let n = 123; //123

        // let n2 = BigInt(123); //123n

        // console.log(n);
        // console.log(n2);

        // console.log(n == n2); //true

        // console.log(n === n2); //false

        // console.log(typeof n2); //bigint


        // Uncaught TypeError: Cannot mix BigInt and other types, use explicit conversions
        // let n3 = n + n2;

        // console.log(n3);


        // 如果想运算bigint数据

        // 保证类型统一


        // 数字-> bigInt
        // let n = 123;

       
        // let bigIntN = BigInt(n);

        // // 默认定义bigInt类型
        // let n2 = 456n;

        // console.log(bigIntN);

        // let n3 = bigIntN + n2;

        // console.log(n3);


        // bigInt转成数字
        let bigIntN = 666n;

        let n = Number(bigIntN);

        console.log(n); //666

    </script>
</body>
</html>